
        <html>
			<head>
			     <title>美玉在外，败絮其中——色播病毒的那些事儿 - 腾讯电脑管家</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/papers/9738">http://drops.wooyun.org/papers/9738</a></h1>
				
      <p>
        <p>长期以来,色播类App屡见不鲜,其背后是巨大的金钱利益,是病毒主要栖息之地。为了保护用户切身利益,腾讯手机管家长期以来对此类病毒进行及时查杀。</p>

<p>色播类病毒每日感染用户数如下图所示,感染用户数在周末日与假日期间尤为严重</p>

<p><img src="http://static.wooyun.org//drops/20151016/2015101609524620409130.png" alt="" /></p>

<p>为了进行有效的查杀,我们对色情类病毒进行实时的监控。以某约爱色播视频为例,下图所示,晚上8点后会进行爆发,每小时以千为单位,库中总量达80万。</p>

<!--more-->

<p><img src="http://static.wooyun.org//drops/20151016/2015101609524853122230.png" alt="" /></p>

<p>美玉在外,败絮其中,此类色播病毒常以美女色情图片或者视频来诱导用户安装,不断提示用户安装难以卸载的恶意插件,进行广告的推送,甚至在后台静默下载安装应用和发送扣费短信,给用户造成很大的影响</p>

<p>色播病毒执行的流程如下图所示:</p>

<p><img src="http://static.wooyun.org//drops/20151016/2015101609525111005319.png" alt="" /></p>

<h1>0x01 色播类病毒主要行为分析</h1>

<h2>1.1 通过继承Application来解密Dex,隐藏真正的Dex来躲避查杀</h2>

<p><img src="http://static.wooyun.org//drops/20151016/2015101609525499583414.png" alt="" /></p>

<h2>1.2 解密Dex:</h2>

<p>通过包名中的数字截断来确定需要解密的文件的名称,此时文件名为26a6.fdc</p>

<p>解密后的Dex名称由:Md5加密(包名+”.Core”)+“.apk”组成</p>

<h2>1.3 通过DexClassLoader加载Dex,读取资源解密释放出文件:</h2>

<p><img src="http://static.wooyun.org//drops/20151016/201510160952565896759.png" alt="" /></p>

<p>命名方式为:MD5加密(包名+“.original”+versionCode),此时的文件为一个Loader</p>

<h2>1.4 Loader联网获取恶意插件:</h2>

<p>01f61033344309ee8aa69bfab53f8196.apk即为Loader,</p>

<p>包com.jmedia.loader.ad的函数AdApkHandler为加载插件函数</p>

<h3>1) 联网获取数据,配置广告文件config_ad.xml</h3>

<p><img src="http://static.wooyun.org//drops/20151016/201510160952576163468.png" alt="" /></p>

<h3>2) 读取json数据,通过解密字符串获得需要的字段downloadurl,filesize,outStartActivity等</h3>

<p><img src="http://static.wooyun.org//drops/20151016/201510160952596397979.png" alt="" /></p>

<p>对应的字符串</p>

<p><img src="http://static.wooyun.org//drops/20151016/2015101610042654046table.png" alt="" /></p>

<p>解密函数主要过程:将密钥 进行MD5 加密,取前17位作为AES解密的key</p>

<p>解密函数如下:</p>

<p><img src="http://static.wooyun.org//drops/20151016/2015101609530097864811.png" alt="" /></p>

<h3>3）写SharedPreferences文件config_ad.xml,内容如下</h3>

<p><img src="http://static.wooyun.org//drops/20151016/2015101609530246008910.png" alt="" /></p>

<h3>4）获取到config_ad.xml的downloadUrl下载解密</h3>

<p>下载到的文件ad20150513.apk文件,命名为game.properties, 该文件为加密文件,读取config_ad.xml的secretKey进行AES解密,释放解密后的文件到sdcard中的SAdAssets目录下,命名为game20141210.apk,该文件即为我们要的com.android.system.contact.app推广的APP</p>

<p><img src="http://static.wooyun.org//drops/20151016/2015101609530326543109.png" alt="" /></p>

<p>其中config_ad.xml中的字段：outStartActivityAction, outStartActivity , serviceClassName 为需要启动的组件信息</p>

<h2>1.5 推广的<code>com.android.system.contact.app</code> 主要行为</h2>

<ol>
<li>激活设备管理器</li>
<li>监听设备管理器DeviceAdminReceiverm,当用户禁用时,返回字符串:“取消激活将导致手机系统不稳定,部分安卓程序无法运行”,且记录是否禁用</li>
<li>联网下载推广信息,banner广告,悬浮窗广告,推送消息等</li>
</ol>

<p><img src="http://static.wooyun.org//drops/20151016/20151016095305974131113.png" alt="" /></p>

<h1>0x02 色播类病毒追踪</h1>

<hr />

<h2>2.1批量生成灵活配置后台进行推广:色播类病毒中含大量重打包的应用,其推广应用可灵活配置</h2>

<p><img src="http://static.wooyun.org//drops/20151016/20151016095307677331211.png" alt="" /></p>

<h3>1)根据Manifest配置文件的Appid来决定访问的网址</h3>

<p><img src="http://static.wooyun.org//drops/20151016/2015101609530822624139.png" alt="" /></p>

<h3>2) 后台含需要推广的应用,及其诱导信息</h3>

<p><img src="http://static.wooyun.org//drops/20151016/2015101609531010564149.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20151016/2015101609531114755159.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20151016/2015101609531361516168.png" alt="" /></p>

<h2>2.2 静默发送短信或者诱导点击来达到扣费的效果,以云端控制的方式返回 待发送短信和号码,此种方式能控制发送任意短信内容</h2>

<h3>1)除了偷偷发送短信,还会以诱惑性或者模糊的词来诱导用户进行点击</h3>

<p><img src="http://static.wooyun.org//drops/20151016/2015101609531571213178.png" alt="" /></p>

<h3>2）以云控的方式来控制短信内容</h3>

<p><img src="http://static.wooyun.org//drops/20151016/2015101609531699822187.png" alt="" /></p>

<h2>2.3我们在实时监控的过程中,发现色播类病毒和大量插件,App捆绑相关联,可见病毒作者在开发时,在捆绑的测试也下过不少功夫。</h2>

<p><img src="http://static.wooyun.org//drops/20151016/2015101609531814330197.png" alt="" /></p>

<h1>0x03 色播伪装的羊皮</h1>

<hr />

<p>色播类病毒在隐藏伪装方面也着实下了不少功夫</p>

<h2>1. 将推广应用或者dex伪装成so,mp3等各种格式</h2>

<p><img src="http://static.wooyun.org//drops/20151016/2015101609532067226208.png" alt="" /></p>

<p>实际上Media.mp3为Apk文件,如下图所示</p>

<p><img src="http://static.wooyun.org//drops/20151016/20151016095321165552111.png" alt="" /></p>

<h2>2. 少量使用主流加固,大多数通过私有加固,加解密的方式来躲避查杀,并且使用公开的隐藏Apk方式</h2>

<h3>1) 如下图所示,样本为dex文件,但其数据的尾部隐藏着一个APK文件</h3>

<p><img src="http://static.wooyun.org//drops/20151016/20151016095323731552210.png" alt="" /></p>

<h3>2) 直接以字符串的形式存储在字符串中,进行解密写文件</h3>

<p><img src="http://static.wooyun.org//drops/20151016/2015101609532534978234.png" alt="" /></p>

<h3>伪装成正常的类名</h3>

<p><img src="http://static.wooyun.org//drops/20151016/2015101609542973207243.png" alt="" /></p>

<h3>通过So来调用android代码下载插件,色播逐步转向Native层将成为一大趋势</h3>

<p><img src="http://static.wooyun.org//drops/20151016/2015101609532624382254.png" alt="" /></p>

<h1>0x04 总结</h1>

<hr />

<p>色播类的样本使用各种伪装,加解密的方式的手段来加载恶意代码,此种通过云端控制、插件化加载的方式,可达到加载各种恶意app,并且含推广应用,推送消息,恶意扣费的行为,将对用用户造成很大的影响。</p>

<h1>0x05 解决方案与安全建议</h1>

<hr />

<ol>
<li>使用腾讯手机管家可进行精确的查杀与防御</li>
<li>健康上网,不安装来历不明的应用软件</li>
</ol>

<p><img src="http://static.wooyun.org//drops/20151016/2015101609543116851265.png" alt="" /></p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          